//有效的山脉数组
/*给定一个整数数组 arr，如果它是有效的山脉数组就返回 true，否则返回 false。

让我们回顾一下，如果 arr 满足下述条件，那么它是一个山脉数组：

arr.length >= 3
在 0 < i < arr.length - 1 条件下，存在 i 使得：
arr[0] < arr[1] < ... arr[i-1] < arr[i] 
arr[i] > arr[i+1] > ... > arr[arr.length - 1]
1 <= arr.length <= 10^4
0 <= arr[i] <= 10^4
*/
bool validMountainArray(int* arr, int arrSize) {
    if (arrSize < 3)
        return false;
    for (int i = 1; i < arrSize; i++) {
        while (i < arrSize && arr[i] > arr[i - 1]) {
            i++;
        }
        if (i >= arrSize || i <= 1)
            return false;
        if (i < arrSize && arr[i] < arr[i - 1]) {
            while (i < arrSize) {
                if (arr[i] >= arr[i - 1])
                    return false;
                i++;
            }
        } else if (arr[i] == arr[i - 1])
            return false;
    }
    return true;
}



//按既定顺序创建目标数组
/*给你两个整数数组 nums 和 index。你需要按照以下规则创建目标数组：

目标数组 target 最初为空。
按从左到右的顺序依次读取 nums[i] 和 index[i]，在 target 数组中的下标 index[i] 处插入值 nums[i] 。
重复上一步，直到在 nums 和 index 中都没有要读取的元素。
请你返回目标数组。

题目保证数字插入位置总是存在。
1 <= nums.length, index.length <= 100
nums.length == index.length
0 <= nums[i] <= 100
0 <= index[i] <= i
*/
class Solution {
public:
    vector<int> createTargetArray(vector<int>& nums, vector<int>& index) {
        vector<int> arr;
        for (int i = 0; i < nums.size(); i++) {
            arr.insert(arr.begin()+index[i], nums[i]);
        }
        return arr;
    }
};
